package com.dao;

import com.beans.CateInfo;
import com.jdbc.DBUtil;
import org.apache.commons.dbutils.DbUtils;

import java.util.List;

public class CateDao {
    public int addCate(CateInfo cateInfo) {
        String sql = "insert into cateInfo (cateName,des,parentId) values (?,?,?)";
        return DBUtil.update(sql, cateInfo.getCateName(), cateInfo.getDes(), cateInfo.getParentId());
    }

    public List<CateInfo> getCateList(int parentId) {
        String sql = "select * from cateInfo where parentId=?";
        List<CateInfo> cateList = DBUtil.getList(sql, CateInfo.class, parentId);
        for (CateInfo cate : cateList) {
            if (cate.getParentId() == 0) {
                cate.setSubCateList(getCateList(cate.getId()));
            }
        }
        return cateList;
    }

    public CateInfo getCateListById(Integer id) {
        String sql = "select * from cateInfo where id=?";
        return DBUtil.getSingleObject(sql, CateInfo.class, id);
    }

    public int updateCate(CateInfo cateInfo) {
        String sql="update cateInfo set cateName=?,des=?,parentId=? where id=?";
        return DBUtil.update(sql,cateInfo.getCateName(),cateInfo.getDes(),cateInfo.getParentId(),cateInfo.getId());
    }

    public int getSubCountByBigCate(Integer cateId) {
        String sql="select count(*) from cateInfo where parentId=?";
        long result=DBUtil.getScalar(sql, cateId);
        return Integer.parseInt(result+"") ;
    }
    public int delCateById(Integer cateId) {
        String sql="delete from cateInfo where id=?";
        return DBUtil.update(sql,cateId);
    }
}
